package com.person.yhzs.user.service;

import com.person.yhzs.common.page.PageRequest;
import com.person.yhzs.common.page.PageResponse;
import com.person.yhzs.user.entity.User;
import com.person.yhzs.user.entity.dto.LoginDto;
import com.person.yhzs.user.entity.dto.UserDto;
import com.person.yhzs.user.entity.vo.UserVo;

import java.util.Map;

/**
 * @author luolin
 * @version 1.0.0
 * @createTime 2022年05月30日 14:35:00
 */
public interface UserService {

    /**
     * @Description 快捷登录（手机号）
     * @Author luolin
     * @Date 2022/7/1 16:59
     **/
    Map<String,Object> quickLogin(String phone);

    /**
     * @Description 微信用户手机号
     * @Author luolin
     * @Date 2022/7/1 14:34
     **/
    Map<String,Object> wxPhone(String code);

    /**
     * @Description 微信用户登录
     * @Author luolin
     * @Date 2022/7/1 14:34
     **/
    Map<String,Object> wxLogin(String code);

    /**
     * 用户登录
     * @param loginDto
     * @return
     */
    Map<String,Object> login(LoginDto loginDto);

    /**
     * 用户退出登录
     * @param userId
     */
    void logout(Integer userId);

    /**
     * @Description 新增用户
     * @Author luolin
     * @Date 2022/5/31 10:14
     **/
    void insertUser(UserDto userDto);

    /**
     * @Description 新增用户
     * @Author luolin
     * @Date 2022/5/31 10:14
     **/
    void updateUser(UserDto userDto);

    /**
     * @Description 校验是否已存在账号
     * @Author luolin
     * @Date 2022/6/20 15:48
     **/
    void checkAccount(String account);

    /**
     * @Description 检查用户信息
     * @Author luolin
     * @Date 2022/8/19 16:11
     **/
    void checkUser(UserDto userDto);

    /**
     * @Description 手机号获取人员信息
     * @Author luolin
     * @Date 2022/10/19 16:39
     *
     * @return*/
    User queryUserByPhone(String phone);

    /**
     * 通过人员id获取人员信息
     * @param userId
     * @return
     */
    User queryUserById(Long userId);

    PageResponse<UserVo> queryUsers(PageRequest<UserDto> userDto);
}
